package com.asa.a.code;

/**
 * @author shkstart
 * @create 2020 上午 11:23
 */
public class DeadThreadTest {
	//多个线程加载同一个类，只能加载一次，而且它会给类加载加锁 ，只有被加载完才会释放锁
	//所以呀，static静态代码块的使用要注意，不小心写了无限循环就会出现加载器锁死了
    public static void main(String[] args) {
        Runnable r = () -> {
            System.out.println(Thread.currentThread().getName() + "开始");
            DeadThread dead = new DeadThread();
            System.out.println(Thread.currentThread().getName() + "结束");
        };

        Thread t1 = new Thread(r,"线程1");
        Thread t2 = new Thread(r,"线程2");

        t1.start();
        t2.start();
    }
}

class DeadThread{
    static{
        if(true){
            System.out.println(Thread.currentThread().getName() + "初始化当前类");
            while(true){//这里的循环是为了一个类不被加载完，从而可以看到只有一个类被加载的效果，而由于循环没有跳出，所以其他线程也无法加载此类

            }
        }
    }
}